[LeetCode] 55 - Jump Game

題意

從陣列的開頭開始,陣列中的值代表從當格所能走的最大步數,請判斷是否能走到最後一格。

解法

Greedy,記錄目前所能到達的最大值,一旦途中到達不了就失敗。

程式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
bool canJump(vector<int>& nums) {
int length = nums.size() ;
int maxsite = 0 ;
for ( int i = 0 ; i < length - 1 ; i ++ ){
maxsite = max(maxsite,nums[i]) ;
maxsite -- ;
if ( maxsite < 0 )
return false ;
}
return true ;
}
};